<template>
  <div class="register">
    <div class="top">
      <div class="title">
        {{ hospitailStore.hospitalInfo.hospital?.hosname }}
      </div>
      <div class="level">
        <SvgIcon name="zan" class="icon"></SvgIcon>
        <span>
          {{ hospitailStore.hospitalInfo.hospital?.param.hostypeString }}
        </span>
      </div>
    </div>
    <!-- 展示内容的区域 -->
    <div class="content">
      <div class="left">
        <img
          :src="`data:image/jpeg;base64,` + hospitailStore.hospitalInfo.hospital?.logoData"
          v-if="hospitailStore.hospitalInfo.hospital?.logoData"
        />
      </div>
      <div class="right">
        <div>挂号规则</div>
        <div class="time">
          预约周期:{{ hospitailStore.hospitalInfo.bookingRule?.cycle }}天 放号时间:{{
            hospitailStore.hospitalInfo.bookingRule?.releaseTime
          }}
          停挂时间:{{ hospitailStore.hospitalInfo.bookingRule?.stopTime }}
        </div>
        <div class="address">
          具体位置:{{ hospitailStore.hospitalInfo.hospital?.param.fullAddress }}
        </div>
        <div class="route">具体路线:{{ hospitailStore.hospitalInfo.hospital?.route }}</div>
        <div class="releasetime">
          退号时间:就诊前一工作日{{ hospitailStore.hospitalInfo.bookingRule?.quitTime }}前取消
        </div>
        <div class="rule">预约挂号规则</div>
        <div
          class="ruleInfo"
          v-for="(item, index) in hospitailStore.hospitalInfo.bookingRule?.rule"
          :key="index"
        >
          {{ item }}
        </div>
      </div>
    </div>
    <!-- 放置每一个医院的科室的数据 -->
    <div class="deparment">
      <div class="leftNav">
        <ul>
          <li
            v-for="(deparment, index) in hospitailStore.deparmentArr"
            :key="deparment.depcode"
            :class="{ active: index == currentIndex }"
            @click="changeIndex(index)"
          >
            {{ deparment.depname }}
          </li>
        </ul>
      </div>
      <div class="deparmentInfo">
        <!-- 用一个 div 代表一个大科室对应的小科室 -->
        <div
          class="showDeparment"
          v-for="deparment in hospitailStore.deparmentArr"
          :key="deparment.depcode"
        >
          <h1 class="cur">{{ deparment.depname }}</h1>
          <!-- 每一个大科室下的小科室 -->
          <ul>
            <li @click="showLogin(item)" v-for="item in deparment.children" :key="item.depcode">
              {{ item.depname }}
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { useRouter, useRoute } from 'vue-router'
//引入医院详情仓库的数据
import useDetailStore from '@/store/modules/hospitalDetail'
let hospitailStore = useDetailStore()
//获取路由器
let $router = useRouter()
//获取路由对象
let $route = useRoute()
//获取 user 仓库的数据（visiable）数据可以控制 login 组件的对话框的显示与隐藏
//import useUserStore from '@/store/modules/user';
//let userStore = useUserStore();
//控制科室高亮的响应式数据
let currentIndex = ref<number>(0)
//左侧大的科室点击的时间
const changeIndex = (index: number) => {
  currentIndex.value = index
  //点击导航获取右侧科室（大的科室H1标题）
  let allH1 = document.querySelectorAll('.cur')
  //滚动到对应科室的位置
  allH1[currentIndex.value].scrollIntoView({
    behavior: 'smooth', //过渡动画效果
    block: 'start' //滚动的位置，起始位置
  })
}

//点击科室按钮回调
//item: 即为用户选中的科室的数据
const showLogin = (item: any) => {
  //登录组件对话框弹出来
  //userStore.visiable = true
  //路由鉴权
  //点击某一个医院科室按钮，进入到相应的预约挂号详情页面
  //跳转到预约挂号详情页
  $router.push({
    path: '/hospital/register_step1',
    query: { hoscode: $route.query.hoscode, depcode: item.depcode }
  })
}
</script>

<style scoped lang="scss">
.register {
  .top {
    display: flex;

    .title {
      font-size: 25px;
      font-weight: 900;
    }

    .level {
      color: #7f7f7f;
      margin-left: 10px;
      height: 40px;
      text-align: center;
      line-height: 40px;
      span {
        margin-left: 5px;
      }
    }
  }

  .content {
    display: flex;
    margin-top: 20px;
    .left {
      width: 80px;
      img {
        width: 80px;
        height: 80px;
        border-radius: 50%;
      }
    }
    .right {
      flex: 1;
      font-size: 14px;
      margin-left: 20px;
      .time,
      .address,
      .route,
      .releasetime,
      .ruleInfo {
        margin-top: 10px;
        color: #7f7f7f;
      }

      .rule {
        margin: 10px 0px;
      }
    }
  }

  .deparment {
    width: 100%;
    height: 500px;
    display: flex;
    margin-top: 20px;
    .leftNav {
      width: 80px;
      height: 100%;

      ul {
        width: 100%;
        height: 100%;
        background: rgb(248, 248, 248);
        display: flex;
        flex-direction: column;
        li {
          flex: 1;
          text-align: center;
          color: #7f7f7f;
          font-size: 14px;
          line-height: 40px;

          &.active {
            border-left: 1px solid red;
            color: red;
            background: white;
          }
        }
      }
    }

    .deparmentInfo {
      flex: 1;
      margin-left: 20px;
      height: 100%;
      overflow: auto;
      &::-webkit-scrollbar {
        display: none;
      }

      .showDeparment {
        margin-bottom: 20px;
        h1 {
          background-color: rgb(248, 248, 248);
          color: #7f7f7f;
          font-size: 18px;
          line-height: 30px;
          font-weight: bold;
        }

        ul {
          display: flex;
          flex-wrap: wrap;

          li {
            color: #7f7f7f;
            width: 33%;
            line-height: 30px;
          }
        }
      }
    }
  }
}
</style>
